package top.ytazwc.principle.liskov;

/**
 * @author 花木凋零成兰
 * @title Liskov1
 * @date 2024/4/16 20:07
 * @package top.ytazwc.principle.liskov
 * @description TODO
 */
public class Liskov1 {
    public static void main(String[] args) {
        A a = new A();
        System.out.println("11-3=" + a.func1(11, 3));
        System.out.println("1-8=" + a.func1(1, 8));
        System.out.println("-----------------------");
        B b = new B();
        System.out.println("11-3=" + b.func1(11, 3));   //这里本意是求出 11-3  可能还以为调用的是父类的func1方法
        System.out.println("1-8=" + b.func1(1, 8));     // 1-8
        System.out.println("11+3+9=" + b.func2(11, 3));
    }
}
// A类
class A {
    // 返回两个数的差
    public int func1(int nums1, int nums2) {
        return nums1 - nums2;
    }
}
// B类继承了A
// 新增了一个方法func2, 即求 func1的值 与 9 的和
class B extends A {
    // 重写了父类的方法 可能是"无意"重写的
    public int func1(int nums1, int nums2) {
        return nums1 + nums2;
    }
    public int func2(int nums1, int nums2) {
        return func1(nums1, nums2) + 9;
    }
}
